// 编程考试：
// C语言考查的算法：
// 1、if结构问题
// 2、级数有限项求和问题；
// 3、求和：如a+aa+aaa+aaaa+.......... 、1+1/2!+1/3!+……+1/n!等
// 4、斐波那契数列；
// 5、百钱百鸡问题；
// 6、最大公约数、最小公倍数问题。
// 7、求一定范围内符合条件的数（用函数实现）。
//    包括求水仙花数、闰年、回文数、素数（素数倒数和）、完数等；
// 8、函数求阶乘； 
// 9、一维数组问题：
// （1）求一组数的正、负数（或奇、偶数）的个数和平均值、最大值、最小值；
// （2）会用函数进行一维数组的参数传递，实现两个数组相加（相减）、逆序存放等操作；
// （3）一维数组排序（从大到小、从小到大），会用函数实现；
// （4）字符数组问题（会用函数实现）：字符串加密、统计字符串中字母和数字的个数、一维字符数组排序
//      如实验指导P141 编程2、4等
// 10、二维数组问题：
// （1）二维数组的正、负数（或奇、偶数）的个数和平均值、最大值、最小值、二维数组主、次对角线之和；
// （2）二维数组变换（会用函数实现）；
//     如二维数组的转置、 旋转90度之后的矩阵等；
// （3）杨辉三角形（会用函数实现）

/*#include <stdio.h>
// 3、求和：如a+aa+aaa+aaaa+.......... 、1+1/2!+1/3!+……+1/n!等
int main()
{
    int a,n;
    int s=0;
    int t=0;
    scanf("%d %d",&a,&n);
    for(int i=1;i<=n;i++)
    {
        t=t*10+a;
        s+=t;
    }
    printf("%d",s);
    return 0;
}*/


/*#include <stdio.h>
// 4、求第n项斐波那契数列；
int main()
{
    int n;
    scanf("%d",&n);
    int r1=1,r2=1,r3;
    for(int i=1;i<=n;i++)
    {
        if(i==1||i==2)
        {
            r3=1;
        }
        else
        {
            r3=r1+r2;
            r1=r2;
            r2=r3;
        }
    }
    printf("%d",r3);
    return 0;
}*/

/*#include <stdio.h>
int fun(int n)
{
    if(n==1||n==2)
    {
        return 1;
    }
    else
    {
        return fun(n-1)+fun(n-2);
    }
}
int main()//迭代求斐波那契数列第n项
{
    int n;
    scanf("%d",&n);
    printf("%d",fun(n));
    return 0;
}*/



/*#include <stdio.h>
int main()//百钱百鸡,一大鸡3钱，一中鸡2钱，1钱两小鸡
{
    int a,b,c;
    for(a=0;a<=33;a++)
    {
        for(b=0;b<=50;b++)
        {
            c=100-a-b;
            if(a*3+b*2+c/2==100&&c%2==0)
            {
                printf("bigchicken:  %d  middlechicken   %d  littlechicken    %d\n",a,b,c);
            }
        }
    }
    return 0;
}*/



/*#include <stdio.h>
int GMD(int a,int b)
{
    while(a%b)
    {
        int c=a%b;
        a=b;
        b=c;
    }
    return b;
}
int LCM(int a,int b)
{
    return a*b/GMD(a,b);
}
int main()//最大公约数，最小公倍数
{
    int a,b;
    scanf("%d %d",&a,&b);
    printf("the greatest common divisor is : %d\n",GMD(a,b));
    printf("the least common multiple is : %d\n",LCM(a,b));
    return 0;
}*/



// #include <stdio.h>
// int zdgy(int a,int b)
// {
//     while(a%b)
//     {
//         int c=a%b;
//         a=b;
//         b=c;
//     }
//     return b;
// }
// int main()//最大公约数，最小公倍数
// {
//     int a,b;
//     scanf("%d %d",&a,&b);
//     int m=zdgy(a,b);
//     int n=a*b/m;
//     printf("the greatest common divisor is : %d\n",m);
//     printf("the least common multiple is : %d\n",n);
//     return 0;
// }



/*#include <stdio.h>
void pdws(int n)
{
    int s=0;
    for(int i=1;i<=n/2;i++)
    {
        if(n%i==0)
        {
            s+=i;
        }
    }
    if(s==n)
    {
        printf("%d is a perfect number\n",n);
    }
    else
    {
        printf("%d is not a perfect number\n",n);
    }
}
int main()//判断一个数是否为完数
{
    int n;
    scanf("%d",&n);
    pdws(n);
    return 0;
}*/



/*#include <stdio.h>
int pdss(int n)
{
    int s=1;
    for(int i=2;i<=n/2;i++)
    {
        if(n%i==0)
        {
            s=0;
        }
    }
    if(s)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
int main()//判断一个数是否为素数
{
    int a,b;
    scanf("%d %d",&a,&b);
    for(int i=a;i<=b;i++)
    {
        if(pdss(i))
        {
            printf("%d ",i);
        }
    }
    return 0;
}*/




/*#include <stdio.h>
int reverse(int n)
{
    int s=0;
    int t=n;
    while(t)
    {
        s=s*10+t%10;
        t/=10;
    }
    if(s==n)
    return 1;
    else
    return 0;
}
int main()//判断一个数是否为回文数
{
    int a,b;
    scanf("%d%d",&a,&b);
    for(int i=a;i<=b;i++)
    {
        if(reverse(i))
        {
            printf("%d ",i);
        }
    }
    return 0;
}*/



// #include <stdio.h>
// #include <math.h>
// int main()
// {
//     int n;
//     scanf("%d",&n);
//     for(int i=0;i<n;i++)
//     {
//         for(int j=0;j<n;j++)
//         {
//             printf("%d ",n-abs(i-j));
//         }
//         printf("\n");
//     }
//     return 0;
// }



// #include <stdio.h>
// int main()
// {
//     int n;
//     scanf("%d",&n);
//     int r1=1,r2=1,r3;
//     for(int i=1;i<=n;i++)
//     {
//         if(i==1||i==2)
//         {
//             r3=1;
//         }
//         else
//         {
//             r3=r1+r2;
//             r1=r2;
//             r2=r3;
//         }
//     }
//     printf("%d",r3);
//     return 0;
// }



// #include <stdio.h>
// int fun(int n)
// {
//     if(n==1||n==2)
//     {
//         return 1;
//     }
//     else
//     {
//         return fun(n-1)+fun(n-2);
//     }
// }
// int main()
// {
//     int n;
//     scanf("%d",&n);
//     int c=fun(n);
//     printf("%d",c);
//     return 0;
// }



/*#include <stdio.h>
int main()//打印杨辉三角形
{
    int n;
    scanf("%d",&n);
    int a[100][100]={0};

    for(int i=0;i<n;i++)
    {
        for(int j=0;j<=i;j++)
        {
            if(j==0||j==i)
            {
                a[i][j]=1;
            }
            else
            {
                a[i][j]=a[i-1][j-1]+a[i-1][j];
            }
        }
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<=i;j++)
        {
            printf("%-2d ",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}*/




//模考错题：加密字符串
/*#include <stdio.h>
#include <ctype.h>
void process(char arr1[],char arr2[])
{
    for(int i=0;arr1[i]!='\0';i++)
    {
        if(arr1[i]>='a'&&arr1[i]<='w'||arr1[i]>='A'&&arr1[i]<='W')
        {
            arr2[i]=toupper(arr1[i])+3;
        }
        else
        {
            arr2[i]=toupper(arr1[i])-'X'+'A';
        }
    }
}
int main()
{
    char arr1[100];
    char arr2[100];
    scanf("%s",arr1);
    process(arr1,arr2);
    printf("%s",arr2);
    return 0;
}*/



/*#include <stdio.h>
#include <string.h>
int main()//字符串逆序
{
    char arr[100];
    //scanf("%[^\n]",arr);
    gets(arr);
    int left=0;
    int right=strlen(arr)-1;
    while(left<right)
    {
        char temp=arr[left];
        arr[left]=arr[right];
        arr[right]=temp;
        left++;
        right--;
    }
    //printf("%s",arr);
    puts(arr);
    return 0;
}*/



/*#include <stdio.h>
int pdss(int n)
{
    for(int i=2;i<=n/2;i++)
    {
        if(n%i==0)
        {
            return 0;
        }
    }
    return 1;
}
int main()//输出a到b之间的素数
{
    int a,b;
    scanf("%d%d",&a,&b);
    int count =0;
    for(int i=a;i<=b;i++)
    {
        if(pdss(i))
        {
            printf("%d ",i);
            count++;
            if(count%5==0)
            {
                printf("\n");
            }
        }
    }
    return 0;
}*/




/*#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int  fun(const void *p1,const void *p2)
{
    return *(char*)p1-*(char*)p2;
}
int main()//连接两个字符串并按字典序排序
{
    char arr1[100];
    char arr2[100];
    scanf("%s",arr1);
    scanf("%s",arr2);
    strcat(arr1,arr2);
    int len=strlen(arr1);
    qsort(arr1,len,sizeof(char),fun);
    printf("%s",arr1);
    return 0;
}*/



/*#include <stdio.h>
#include <ctype.h>
int fun(char arr[])
{
    int s=0;
    for(int i=0;arr[i]!='\0';i++)
    {
        if(isdigit(arr[i]))
        {
            s=s*10+arr[i]-'0';
        }
    }
    return s;
}
int hw(int n)
{
    int t=n;
    int s=0;
    while(t)
    {
        s=s*10+t%10;
        t/=10;
    }
    if(s==n)
    return 1;
    else 
    return 0;
}
int main()//输入一个字符串，以整形形式输出其中的数字，判断数字是否为回文数
{
    char arr[100];
    scanf("%[^\n],",arr);
    int a=fun(arr);
    printf("%d\n",a);
    if(hw(a))
    {
        printf("yes hw");
    }
    else 
    {
        printf("no hw");
    }
    return 0;
}*/



#include <stdio.h>
void fun(int arr[][100],int n)
{
    int s1=0;
    int s2=0;
    for(int i=0;i<n;i++)
    {
        s1+=arr[i][i];
        s2+=arr[i][n-i-1];
    }
    printf("%d %d\n",s1,s2);
}
int main()
{
    int n;
    scanf("%d",&n);
    int arr[100][100];
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            scanf("%d",&arr[i][j]);
        }
    }
    fun(arr,n);
    return 0;
}